//
//
///*
//  Flags.java
//    (c)1999-2006 SSC Development Team
//  Functions: 
//  -Managing in-game plot-related variables.
//  Allowed Dependencies: Preferably none
//*/
//
//
//@implementation 
//Flags {
//  
//  public static int[] f = new int[1000];
//  
//  public static void Error(String Message) {
//    System.out.println("Entity Response Error: "+Message);
//  }
//  
//  /* parse f<x>=y and tells if it is true or not */
//  public static boolean compare(String a) {
//    
//    int d = a.indexOf('=');
//    System.out.println(d+":"+a+":");
//    if (d == -1) { Error("in if <something>: <something> did not contain a '='."); return false; }
//    int number = Integer.parseInt(a.substring(1,d));
//    int value = Integer.parseInt(a.substring(d+1));
//    System.out.println(number+" "+value);
//    
//    if(f[number] == value) { return true; }
//    return false;
//  }
//  
//  /* assign a value to a flag */
//  public static void assign(String a) {
//    
//    int d = a.indexOf('=');
//    System.out.println(d+":"+a+":");
//    if (d == -1) { Error("in set <something>: <something> did not contain a '='."); return; }
//    int number = Integer.parseInt(a.substring(1,d));
//    int value = Integer.parseInt(a.substring(d+1));
//    System.out.println(number+" "+value);
//    
//    f[number] = value;
//   
//  }
//  
//  /* Parses System Commands */
//  public static boolean SysParse(String resptext) {
//    
//    while(!resptext.equals("")) {
//    
//      //if statements
//      if(resptext.substring(0,2).equals("if")) {
//        
//        resptext = resptext.substring(3);
//        
//        
//        boolean branch;
//        //if this is the last statement
//        if(resptext.indexOf(' ') == -1) {
//          if(compare(resptext.substring(0,resptext.indexOf('}')))) { return true; }
//          else { return false; }
//        }
//        //if there are statements after this  
//        else {
//          branch = compare(resptext.substring(0,resptext.indexOf(' ')));
//          if(!branch) { resptext = ""; return false; }
//          else { 
//          resptext = resptext.substring(resptext.indexOf(' ')+1); 
//          System.out.println(resptext);
//          //resptext = ""; //TEMP
//          }
//        } 
//        
//        //System.out.println("if statement recognized.");
//        
//        /*StringTokenizer st = new StringTokenizer(resptext.substring(3));
//        int count = 0;
//        
//        while (st.hasMoreTokens()) {
//          String cur = st.nextToken();
//          if(cur.equals("")) {  }
//          
//          //first statement is a comparison
//          if(count == 0) {
//            //statement is true? Move on
//            if(compare(cur) == true) {
//              count++;
//            }
//            //statement is false? Ignore anything in this section and don't write.
//            else {
//              return false;
//            }
//          }
//          
//          System.out.println(st.nextToken());
//        }*/
//      }
//      else if(resptext.substring(0,3).equals("say")) {
//        return true;  
//      }
//      else if(resptext.substring(0,3).equals("set")) { 
//        resptext = resptext.substring(4);
//        if(resptext.indexOf(' ') == -1) {
//          assign(resptext.substring(0,resptext.indexOf('}')));
//          resptext = "";
//        }
//        else {
//          assign(resptext.substring(0,resptext.indexOf(' ')));
//        }   
//      }
//    
//    
//    }
//    return true;
//  }
//  
//  public static String Parse(String resptext) {
//    resptext = resptext.trim();
//    int c = 0; //cursor
//    int mode = 0; //0=speech, 1=system mode
//    boolean write = true;
//    String response = "";
//    
//    while(resptext.length()>0) {
//      //Context switch
//      if(resptext.charAt(0)=='{' || resptext.charAt(0)=='}') {
//        mode = 1-mode;
//        resptext = resptext.substring(1);
//      }
//      //speech context, writing allowed (yes by default)
//      else if(mode == 0) {
//        if(write) response = response + resptext.charAt(0);
//        
//        resptext = resptext.substring(1);
//      }
//      else if(mode == 1) {
//        int end = resptext.indexOf('}') + 1;
//        if(end < 1) {
//          System.out.println("The response text of this entity is ill-formatted. It shall therefore be ignored.");
//          resptext = "";
//          response = "";
//        }
//        else {
//          write = SysParse(resptext.substring(0,end));
//          resptext = resptext.substring(end);
//          mode = 0;
//          
//        }    
//      }
//    }
//    return response;
//  }
//  
//  public Flags() {
//    // TODO: Add your code here
//  }  
//}
